$(function () {//加载表格
    $('#dg').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: reportworld + '/table/listTable',
        pagination: true,
        singleSelect: false,//如果为true，则只允许选择一行。
        title: "表信息列表",
        pageSize: pageSize,
        pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '表名编号', hidden: "true"},
            {field: 'status', title: '状态', hidden: "true"},
            {field: 'name', title: '表名'},
            {field: 'chineseName', title: '中文名称'},
            {field: 'strFtype', title: '表类型'},
            {field: 'strFsource', title: '表来源'},
            {field: 'originalTableName', title: '修改前表名'},
            {field: 'strReport', title: '所属报表', width: 100},
            {field: 'strModular', title: '所属模块', width: 100},
            {field: 'strCustomer', title: '所属客户', width: 100},
            {field: 'strLayered', title: '报表世界所在分层'},
            {field: 'description', title: '表说明', width: 100},
            {field: 'strStatus', title: '状态'},
            {field: 'version', title: '版本号'},
            {field: 'addUser', title: '添加人'},
            {field: 'addTime', title: '添加时间'},
            {field: 'editUser', title: '修改人'},
            {field: 'editTime', title: '修改时间'}
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        },
        //表格样式
        rowStyler: function (index, row) {
            return rowStyler(row.status);
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            viewTableInfo(rowData)
        }
    }).datagrid("columnMoving");
    ;
    initData();
    comboboxChanageDemandBug();
})

//选择表关联得时候，重新赋值用
var reportTablesAdd;

// 初始化加载下拉框的值
function initData() {
    $.ajax({
            type: "post",
            url: reportworld + "/table/init",
            dataType: "json",
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                //字段类型
                var listColumnType = data.data.listColumnType;
                //报表世界所在分层
                var listLayered = data.data.listLayered;
                // 所属模块
                var listModular = data.data.listModular;
                // 字段所属客户
                var listCustomer = data.data.listCustomer;
                //字段所属报表
                var listReport = data.data.listReport;
                //状态
                var listStatus = data.data.listStatus;
                //版本号
                var listVersion = data.data.listVersion;
                // 字典
                var listTpGlExhibDatadict = data.data.listTpGlExhibDatadict;
                // 表名
                var reportTables = data.data.reportTables;
                // 类型
                var listFtype = data.data.listFtype;
                //来源
                var listFsource = data.data.listFsource;
                //索引类型
                var listIndexedType = data.data.listIndexedType;
                //数据库类型
                var listReportDataBaseType = data.data.listReportDataBaseType;
                //当前版本的bug和需求
                var demandBugInfoList = data.data.demandBugInfoList;
                if (!isNull(listColumnType)) {  //字段类型
                    $("#columnType").combobox("loadData", listColumnType);
                }
                //  报表世界所在分层
                if (!isNull(listLayered)) {  //字段类型
                    $("#layered").combobox("loadData", listLayered);
                    var listLayered2 = data.data.listLayered2;
                    listLayered2.unshift({"showmsg": "==全部==", "value": ''});
                    $("#selLayered").combobox("loadData", listLayered2);
                }
                if (!isNull(listModular)) {
                    $("#columnModular").combotree("loadData", listModular);
                    $('#tableModular').combotree({data: listModular});
                    $('#selModular').combotree({data: listModular});
                    $('#selColumnModular').combotree({data: listModular});
                }
                if (!isNull(listCustomer)) {
                    $("#columnCustomer").combotree("loadData", listCustomer);
                    $('#tableCustomer').combotree({data: listCustomer});
                    $('#selCustomer').combotree({data: listCustomer});
                    $('#selColumnCustomer').combotree({data: listCustomer});
                }
                if (!isNull(listReport)) {
                    $("#columnReport").combotree("loadData", listReport);
                    $('#tableReport').combotree({data: listReport});
                    $('#selReport').combotree({data: listReport});
                    $('#selColumnReport').combotree({data: listReport});
                }
                if (!isNull(listStatus)) {  //状态
                    var listStatus2 = data.data.listStatus2;
                    listStatus2.unshift({"showmsg": "==全部==", "value": ''});
                    $("#selStatus").combobox("loadData", listStatus2);
                    $("#tableStatus").combobox("loadData", listStatus);
                    $("#selColumnStatus").combobox("loadData", listStatus2);
                    $("#columnStatus").combobox("loadData", listStatus);
                    $("#relyTableStatus").combobox("loadData", listStatus);
                    $("#tableCheckStatus").combobox("loadData", listStatus);
                    $("#indexedStatus").combobox("loadData", listStatus);
                }
                if (!isNull(listVersion)) {  //版本号
                    var listVersion2 = data.data.listVersion2;
                    listVersion2.unshift({"showmsg": "==全部==", "value": ''});
                    $("#selVersion").combobox("loadData", listVersion2);
                    $("#selColumnVersion").combobox("loadData", listVersion2);
                    $("#tableVersion").combobox("loadData", listVersion);
                    $("#columnVersion").combobox("loadData", listVersion);
                    $("#tableCheckVersion").combobox("loadData", listVersion);
                    $("#tableUpdateVersion").combobox("loadData", listVersion);
                    $("#tabletableVersion").combobox("loadData", listVersion);
                    $("#selTableCheckVersion").combobox("loadData", listVersion2);
                }
                if (!isNull(listFtype)) {  //类型
                    var listFtype2 = data.data.listFtype2;
                    listFtype2.unshift({"showmsg": "==全部==", "value": ''});
                    $("#selFtype").combobox("loadData", listFtype2);
                    $("#ftype").combobox("loadData", listFtype);
                }
                if (!isNull(listFsource)) {  //来源
                    var listFsource2 = data.data.listFsource2;
                    listFsource2.unshift({"showmsg": "==全部==", "value": ''});
                    $("#selFsource").combobox("loadData", listFsource2);
                    $("#fsource").combobox("loadData", listFsource);
                }
                if (!isNull(listTpGlExhibDatadict)) {  //报表世界字典
                    var listTpGlExhibDatadict = data.data.listTpGlExhibDatadict;
                    $("#codeName").combobox("loadData", listTpGlExhibDatadict);
                }
                if (!isNull(reportTables)) {  //表名
                    var reportTables2 = data.data.reportTables2;
                    reportTables2.unshift({"chineseName": "==请选择==", "name": '0'});
                    $("#foreignTable").combobox("loadData", reportTables2);
                    $("#relyTables").combobox("loadData", reportTables);
                    reportTablesAdd = reportTables;
                    $("#originalTableName").combobox("loadData", reportTables);
                }
                if (!isNull(listIndexedType)) {  //索引类型
                    $("#indexedType").combobox("loadData", listIndexedType);
                }
                if (!isNull(listReportDataBaseType)) { //数据库类型
                    $("#dataBaseType").combobox("loadData", listReportDataBaseType);
                }
                if (!isNull(demandBugInfoList)) {  //需求BUG
                    $("#demandBugInfo").combobox("loadData", demandBugInfoList);
                }
                comboboxChanage();
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

/**
 * 下拉框选项改变方法
 */
function comboboxChanage() {
    // 是否主键
    $('#primaryKey').combobox({
        onChange: function (n, o) {
            if ("1" == n) {
                $('#columnNull').combobox('setValue', "2");
            } else {
                $('#columnNull').combobox('setValue', "1");
            }
        }
    });
    // 字段类型选择
    $('#columnType').combobox({
        onChange: function (n, o) {
            $("#columnLengthTr").show();
            $('input[name="columnLength"]').validatebox({
                required: true
            });
            if ("3" == n) { //小数
                $("#columnDecimalTr").show();
                $('input[name="columnDecimal"]').validatebox({
                    required: true
                });
            } else if ("1" == n || "2" == n || "5" == n || "9" == n || "10" == n || "11" == n) { //整数型,字符，
                $("#columnDecimalTr").hide();
                if ("5" == n) {
                    $('input[name="columnLength"]').val("6");
                    $('input[name="columnLength"]').attr("readonly", true)
                } else {
                    $('input[name="columnLength"]').val("");
                    $('input[name="columnLength"]').attr("readonly", false)
                }
                $('input[name="columnDecimal"]').val("");
                $('input[name="columnDecimal"]').validatebox({
                    required: false
                });
            } else {
                $("#columnLengthTr").hide();
                $('input[name="columnLength"]').val("");
                $('input[name="columnLength"]').validatebox({
                    required: false
                });
                $("#columnDecimalTr").hide();
                $('input[name="columnDecimal"]').val("");
                $('input[name="columnDecimal"]').validatebox({
                    required: false
                });
            }
        }
    });
    // 外键关联的表 ，通过表名查询表字段的详细信息
    $('#foreignTable').combobox({
        onChange: function (n, o) {
            $('#foreignTableColumn').combobox('clear');
            if (!isNull(n) && "0" != n) {
                var detailList = queryTableDetailListByTableName(n);
                $("#foreignTableColumn").combobox("loadData", detailList);
                $("#foreignTableColumnTr").show();
                $('#foreignTableColumn').combobox({
                    required: true
                });
            } else {
                $("#foreignTableColumnTr").hide();
                $('#foreignTableColumn').combobox({
                    required: false
                });
            }
        }
    });
}

/**
 * 通过表名获取表字段信息
 * @param name
 */
function queryTableDetailListByTableName(name) {
    var detailList = "";
    $.ajax({
            type: "post",
            url: reportworld + "/table/queryTableDetailListByTableName",
            dataType: "json",
            async: false,
            data: {
                name: name
            },
            success: function (data) {
                $.messager.progress('close');
                if (successcode != data.code) {
                    return;
                }
                detailList = data.data;
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
    return detailList;
}

//搜索的方法
function doSearch() {
    var queryParams = $("#dg").datagrid("options").queryParams;
    queryParams["name"] = $("#selName").val();
    queryParams["chineseName"] = $("#selChineseName").val();
    queryParams["layered"] = $('#selLayered').combobox('getValue');
    queryParams["status"] = $('#selStatus').combobox('getValue');
    queryParams["version"] = $('#selVersion').combobox('getValue');
    queryParams["ftype"] = $('#selFtype').combobox('getValue');
    queryParams["fsource"] = $('#selFsource').combobox('getValue');
    queryParams["strModular"] = getCommbotreeValueDetail("selModular");
    queryParams["strCustomer"] = getCommbotreeValueDetail("selCustomer");
    queryParams["strReport"] = getCommbotreeValueDetail("selReport");
    $("#dg").datagrid("options").queryParams = queryParams;
    $("#dg").datagrid("load");
}

/**
 *  查看方法
 */
var reportTable;

function viewTableInfo(rowData) {
    $('#myform').form('disableValidation');//清除验证样式
    $('#dlg').dialog({
        title: "查看表详细信息"
    }).dialog('open');
    $("#tabfrom2").form('clear');//添加之前清空表达信息
    queryTableDetail(rowData.id);
    reportTable = rowData;
}

/**
 * 查询表详细信息
 */
var table_id;

function queryTableDetail(id) {
    //修改前的表
    var colum = queryTableDetailListByTableId(id);
    $("#originalColumName").combobox("loadData", colum);
    $('#dgDetail').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: reportworld + '/table/queryTableDetailListByTableId',
        // pagination: true,
        singleSelect: false,//如果为true，则只允许选择一行。
        title: "表明细信息列表",
        // pageSize: pageSize,
        //pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            tableId: id
        },
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '编号', hidden: true},
            {field: 'tableId', title: '关联表的主键', hidden: true},
            {field: 'status', title: '状态', hidden: true},
            /*{
                field: 'layered', title: '操作',
                formatter: function (value, row, index) {
                    return "<a href='javascript:void(0)' onclick='getTableInfoDetail(&apos;" + row['id'] + "&apos;,&apos;" + row['tableId'] + "&apos;)'>关联</a>";
                }
            },*/
            {field: 'columnName', title: '名称', width: 100},
            {field: 'columnChineseName', title: '中文名称', width: 100},
            {field: 'columnDescribe', title: '描述', width: 100},
            {field: 'strColumnType', title: '类型'},
            {field: 'columnLength', title: '长度'},
            {field: 'columnDecimal', title: '小数位数'},
            {
                field: 'columnNull', title: '是否可为空', formatter: function (value, row, index) {
                    if (1 == value) {
                        return "是";
                    } else {
                        return "否";
                    }
                }
            },
            {field: 'columnDefault', title: '默认值', width: 100},
            {field: 'originalColumName', title: '修改前字段名'},
            {field: 'strColumnModular', title: '所属模块', width: 100},
            {field: 'strColumnCustomer', title: '所属客户', width: 100},
            {field: 'strColumnReport', title: '所属报表', width: 100},
            {
                field: 'primaryKey', title: '是否主键', formatter: function (value, row, index) {
                    if (1 == value) {
                        return "是";
                    } else {
                        return "否";
                    }
                }
            },
            {
                field: 'businessPrimaryKey', title: '是否业务主键', formatter: function (value, row, index) {
                    if (1 == value) {
                        return "是";
                    } else {
                        return "否";
                    }
                }
            },
            {field: 'foreignTable', title: '外键对应表名'},
            {field: 'foreignTableColumn', title: '外键对应表字段'},
            {
                field: 'matcherChineseContent', title: '内容是否为中文', formatter: function (value, row, index) {
                    if (1 == value) {
                        return "是";
                    } else {
                        return "否";
                    }
                }
            },
            {
                field: 'codeName', title: '字典编码',
                formatter: function (value, row, index) {
                    if (!isNull(row.codeName)) {
                        return "<a href='javascript:void(0)' onclick='datagridDataDic(&apos;" + row['codeName'] + "&apos;)'>" + row.codeName + "</a>";
                    }
                }
            },
            {field: 'deleteReason', title: '修改说明', width: 100},
            {field: 'strStatus', title: '状态'},
            {field: 'version', title: '版本号'}

        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            table_id = id;
            return data.data;
        },
        //表格样式
        rowStyler: function (index, row) {
            return rowStyler(row.status);
        },
        onClickCell: function (index, field, value) {
            $(this).datagrid('beginEdit', index);
            $(this).datagrid('getEditor', {index: index, field: field});
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            viewTableDetail(rowData)
        }, onLoadSuccess: function () {
            $(this).datagrid('enableDnd');
        }
    }).datagrid("columnMoving");
}

//新增表信息
function addTableInfo() {
    $("#myformTableInfo").form('clear');//添加之前清空表达信息
    $('#myformTableInfo').form('enableValidation');//设置验证样式
    $('#dlgInfo').dialog({
        title: "新增表信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveTableInfo(1);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgInfo').dialog('close');
            }
        }
        ]
    }).dialog('open');
    batchHideShow(2);
    $('#tableStatus').combobox('selectedIndex', 0); //选中第一个
    $('#tableVersion').combobox('selectedIndex', 0); //选中第一个
    $('#ftype').combobox('selectedIndex', 0); //选中第一个
    $('#fsource').combobox('selectedIndex', 0); //选中第一个
    $('#layered').combobox('selectedIndex', 0); //选中第一个
    $('#myformTableInfo').form('enableValidation');//设置验证样式
}


//修改表信息方法
function editTableInfo() {
    $('#myformTableInfo').form('enableValidation');//设置验证样式
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    $('#dlgInfo').dialog({
        title: "修改表信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveTableInfo(2);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgInfo').dialog('close');
            }
        }
        ]
    }).dialog('open');
    batchHideShow(2);
    // 赋值原来表信息，如果表名没有改不用检查是不是重复了
    $("#nameFirst").val(arr[0].name);
    $('#tableStatus').combobox('selectedIndex', 0); //选中第一个
    $('#myformTableInfo').form('load', arr[0]);//页面赋值
}

//保存表信息
function saveTableInfo(ftype) {
    //验证表单信息
    if (!$("#myformTableInfo").form('validate')) {  //验证表单信息
        return;
    }
    $.messager.confirm('系统提示', "确定保存表信息吗？", function (param) {
        if (!param) {
            return;
        }
        var url = reportworld + "/table/add";
        if (2 == ftype) {
            url = reportworld + "/table/edit";
        }
        $('#myformTableInfo').form('submit', {
            url: url,
            onSubmit: function (param) {
                //验证表单信息
                param.strModular = getCommbotreeValueDetail("tableModular");
                param.strCustomer = getCommbotreeValueDetail("tableCustomer");
                param.strReport = getCommbotreeValueDetail("tableReport");
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                //关闭弹出窗口
                $('#dlgInfo').dialog('close');
                $.messager.show({title: '系统提示', msg: data.message});
                $("#dg").datagrid("load");//刷新表格
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}

/**
 * 删除表信息方法
 */
function delTableInfo() {
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要删除的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要删除这' + arr.length + '条表信息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: reportworld + "/table/del",
                dataType: "json",
                data: {
                    id: JSON.stringify(ids)
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $("#dg").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );
    });
}

/**
 * 批量修改
 */
function batchUpdateTableInfo() {
    var arr = $('#dg').datagrid('getSelections');
    if (isNull(arr)) {
        $.messager.alert('系统提示', "请选择你要修改的数据！", 'warning');
        return;
    }
    $('#dlgInfo').dialog({
        title: "批量修改数据",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemBatchUpdateTableInfo();
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgInfo').dialog('close');
            }
        }
        ]
    }).dialog('open');
    batchHideShow(1);
    $("#myformTableInfo").form('clear');//添加之前清空表达信息
    $('#myformTableInfo').form('disableValidation');//清除验证样式
}

/**
 * 表字段信息弹出页面的显示和隐藏
 */
function batchHideShow(type) {
    if (1 == type) {
        $("#tableIdTr").hide();
        $("#tableNameTr").hide();
        $("#originalTableNameTr").hide();
        // 下拉框可编辑
        $('#tableStatus').combobox({
            editable: true
        });
        $('#layered').combobox({
            editable: true
        });
        $('#ftype').combobox({
            editable: true
        });
        $('#fsource').combobox({
            editable: true
        });
        $('#tableVersion').combobox({
            editable: true
        });
        $('#nameBatch').validatebox({
            required: false
        });
        $('#chineseNameBatch').validatebox({
            required: false
        });
        $("#columnLengthTr").show();
        $('input[name="columnLength"]').val("");
        $('input[name="columnLength"]').validatebox({
            required: false
        });
        $("#columnDecimalTr").show();
        $('input[name="columnDecimal"]').val("");
        $('input[name="columnDecimal"]').validatebox({
            required: false
        });
    } else {
        $("#tableIdTr").show();
        $("#tableNameTr").show();
        $("#originalTableNameTr").show();
        $('#tableStatus').combobox({
            editable: false
        });
        $('#layered').combobox({
            editable: false
        });
        $('#ftype').combobox({
            editable: false
        });
        $('#fsource').combobox({
            editable: false
        });
        $('#tableVersion').combobox({
            editable: false
        });
        $('#nameBatch').validatebox({
            required: true
        });
        $('#chineseNameBatch').validatebox({
            required: true
        });

    }
}

//批量保存数据
function saveItemBatchUpdateTableInfo() {

    $('#myformTableInfo').form('enableValidation');//设置验证样式
    //验证表单信息
    if (!$("#myformTableInfo").form('validate')) { //验证表单信息
        return;
    }
    var arr = $('#dg').datagrid('getSelections');
    if (isNull(arr)) {
        $.messager.alert('系统提示', "请选择你要修改的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要批量修改【' + arr.length + '】条数据吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        $.messager.progress({text: '正在处理中...',});
        $('#myformTableInfo').form('submit', {
            url: reportworld + "/table/batchUpdateTableInfo",
            onSubmit: function (param) {
                //验证表单信息i
                param.strModular = getCommbotreeValueDetail("tableModular");
                param.strCustomer = getCommbotreeValueDetail("tableCustomer");
                param.strReport = getCommbotreeValueDetail("tableReport");
                param.ids = JSON.stringify(ids);
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                //关闭弹出窗口
                $('#dlgInfo').dialog('close');
                $.messager.show({title: '系统提示', msg: data.message});
                $("#dg").datagrid("load");//刷新表格
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}


//搜索的方法
function doSearchDetail() {
    var queryParams = $("#dgDetail").datagrid("options").queryParams;
    queryParams["columnName"] = $("#selColumnName").val();
    queryParams["columnChineseName"] = $("#selColumnChineseName").val();
    queryParams["columnDescribe"] = $("#selColumnDescribe").val();
    queryParams["status"] = $('#selColumnStatus').combobox('getValue');
    queryParams["version"] = $('#selColumnVersion').combobox('getValue');
    queryParams["businessPrimaryKey"] = $('#selBusinessPrimaryKey').combobox('getValue');
    queryParams["columnModular"] = getCommbotreeValueDetail("selColumnModular");
    queryParams["columnCustomer"] = getCommbotreeValueDetail("selColumnCustomer");
    queryParams["columnReport"] = getCommbotreeValueDetail("selColumnReport");
    queryParams["tableId"] = table_id;
    $("#dgDetail").datagrid("options").queryParams = queryParams;
    $("#dgDetail").datagrid("load");
}

/**
 *  查看表详细信息
 */
function viewTableDetail(rowData) {
    $("#myformDetailInfo").form('clear');//添加之前清空表达信息
    $('#myformDetailInfo').form('disableValidation');//清除验证样式
    $('#dlgDetailInfo').dialog({
        title: "查看表明细信息",
        buttons: [{
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgDetailInfo').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#columnType').combobox('selectedIndex', 0); //选中第一个
    $('#myformDetailInfo').form('load', rowData);//页面赋值
}

/**
 * 新增表明细信息
 */
function addDetailInfo() {
    $("#myformDetailInfo").form('clear');//添加之前清空表达信息
    $('#myformDetailInfo').form('enableValidation');//设置验证样式
    $('#dlgDetailInfo').dialog({
        title: "新增表明细信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveDetailInfo(1);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgDetailInfo').dialog('close');
            }
        }
        ]
    }).dialog('open');
    //设置下拉框默认选中
    $("#tableId").val(table_id);
    $('#primaryKey').combobox('setValue', "2");
    $('#businessPrimaryKey').combobox('setValue', "2");
    $('#matcherChineseContent').combobox('setValue', "2");
    $('#columnNull').combobox('setValue', "1");
    $('#code').combobox('setValue', "2");
    $('#columnType').combobox('selectedIndex', 0); //选中第一个
    $('#columnStatus').combobox('selectedIndex', 0); //选中第一个
    $('#columnVersion').combobox('selectedIndex', 0); //选中第一个
    // 设置增加时下拉选项默认值
    $('#columnModular').combotree("clear");
    $('#columnCustomer').combotree("clear");
    $('#columnReport').combotree("clear");
    $("#columnDefault").textbox('textbox').validatebox({
        required: false,
        validType: ''
    });
    $('#myformDetailInfo').form('enableValidation');//设置验证样式
}

//修改表明细信息方法
function editDetailInfo() {
    $('#myformDetailInfo').form('enableValidation');//设置验证样式
    var arr = $('#dgDetail').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    $('#dlgDetailInfo').dialog({
        title: "修改表明细值信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                // 默认值不位空的是否，验证是否为JSON
                if (!isNull($("#columnDefault").textbox("getValue"))) {
                    $("#columnDefault").textbox('textbox').validatebox({
                        required: false,
                    });
                } else {
                    $("#columnDefault").textbox('textbox').validatebox({
                        required: false,
                        validType: ''
                    });
                }
                saveDetailInfo(2);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgDetailInfo').dialog('close');
            }
        }
        ]
    }).dialog('open');
    // 修改页面字段名称赋值，没有改不用检查
    $("#columnNameFirst").val(arr[0].columnName);
    $('#primaryKey').combobox('setValue', "2");
    $('#businessPrimaryKey').combobox('setValue', "2");
    $('#matcherChineseContent').combobox('setValue', "2");
    $('#columnNull').combobox('setValue', "2");
    $('#code').combobox('setValue', "2");
    $('#columnType').combobox('selectedIndex', 0); //选中第一个
    $('#myformDetailInfo').form('load', arr[0]);//页面赋值
}

//保存表明细信息
function saveDetailInfo(ftype) {
    //验证表单信息
    if (!$("#myformDetailInfo").form('validate')) {  //验证表单信息
        return;
    }
    $.messager.confirm('系统提示', "确定保存表明细信息吗？", function (param) {
        if (!param) {
            return;
        }
        var url = reportworld + '/tableDetail/add';
        if (2 == ftype) {
            url = reportworld + '/tableDetail/edit';
        }
        $('#myformDetailInfo').form('submit', {
            url: url,
            onSubmit: function (param) {
                //验证表单信息
                param.strColumnModular = getCommbotreeValueDetail("columnModular");
                param.strColumnCustomer = getCommbotreeValueDetail("columnCustomer");
                param.strColumnReport = getCommbotreeValueDetail("columnReport");
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                //关闭弹出窗口
                $('#dlgDetailInfo').dialog('close');
                $.messager.show({title: '系统提示', msg: data.message});
                $("#dgDetail").datagrid("load");//刷新表格
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}

/**
 * 删除表明细信息方法
 */
function delDetailInfo() {
    var arr = $('#dgDetail').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要删除的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要删除这' + arr.length + '条表明细信息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: reportworld + "/tableDetail/del",
                dataType: "json",
                data: {
                    id: JSON.stringify(ids)
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $("#dgDetail").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );
    });
}

/**
 *  获取表信息
 */
function readTableInfo() {
    $.messager.confirm('系统提示', "确定导入表信息吗？", function (parm) {
        if (!parm) {
            return;
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: reportworld + "/table/readTableInfo",
                dataType: "json",
                data: {
                    tableName: $("#selName").val()
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $("#dg").datagrid("load");//刷新表格
                    $.messager.progress('close');
                    $.messager.show({title: '系统提示', msg: data.message});
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );
    });
}


/**
 * 读取文件
 * @param fileName
 */
function setFilePreview(fileName) {
    $.messager.confirm('系统提示', "确定导入表信息吗？", function (parm) {
        if (!parm) {
            return;
        }
        //文件后缀格式
        if (!/\.(xlsx|XLSX)$/.test(fileName)) {
            $.messager.alert('系统提示', '错误的类型，请选择xlsx文件', 'error');
            return;
        }
        $('#subFile').form('submit', {
            url: reportworld + "/table/getTableInfoExecl",
            onSubmit: function (param) {
                $.messager.progress({text: '正在处理中...'});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                $("#uploadFile").val("");
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                $('#viewUpgradeTableInfo').dialog({
                    title: "文件上传详细信息",
                    buttons: [{
                        text: '返回',
                        iconCls: 'icon-back',
                        handler: function () {
                            $('#viewUpgradeTableInfo').dialog('close');
                        }
                    }
                    ]
                }).dialog('open');
                $("#msgInfo").textbox('setValue', data.data);
                $("#dg").datagrid("load");//刷新表格
            }, error: function (data) {
                $("#uploadFile").val("");
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}

/**
 * 检查表名是不是已经存在
 * @lsetlist name
 */
$.extend($.fn.validatebox.defaults.rules, {
    checkName: {
        validator: function (value, param) {
            //修改页面，没有修改也提示存在的问题
            var name = $("#" + param[0]).val();
            if (value.toUpperCase() == name.toUpperCase()) {
                return true;
            }
            return checkTableName(value)
        },
        message: '{1}'
    }
});


/**
 * 检查表名是不是已经存在
 * @lsetlist name
 */
function checkTableName(name) {
    var falg = true;
    $.ajax({
        url: reportworld + "/table/checkTableName",
        method: 'post',
        async: false,
        data: {
            "newName": name
        },
        success: function (data) {
            if (successcode != data.code) {
                return errorHandle(data);
            }
            if (data.data == false) {
                falg = false;//标识已经存在
            }
        }, error: function (data) {
            $.messager.progress('close');
            $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
        }
    });
    return falg;
}


/**
 * 检查表名字段已经存在
 * @lsetlist name
 */
$.extend($.fn.validatebox.defaults.rules, {
    checkColumnName: {
        validator: function (value, param) {
            //修改页面，没有修改也提示存在的问题
            var columnName = $("#" + param[0]).val();
            if (value.toUpperCase() == columnName.toUpperCase()) {
                return true;
            }
            return checkColumnName(value)
        },
        message: '{1}'
    }
});


/**
 * 检查表名字段已经存在
 * @lsetlist name
 */
function checkColumnName(columnName) {
    var falg = true;
    $.ajax({
        url: reportworld + "/tableDetail/checkColumnName",
        method: 'post',
        async: false,
        data: {
            "columnName": columnName,
            "tableId": table_id
        },
        success: function (data) {
            if (successcode != data.code) {
                return errorHandle(data);
            }
            if (data.data == false) {
                falg = false;//标识已经存在
            }
        }, error: function (data) {
            $.messager.progress('close');
            $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
        }
    });
    return falg;
}


/**
 * 检查外键关联的表不能选择当前表
 * @lsetlist name
 */
$.extend($.fn.validatebox.defaults.rules, {
    checkForeignTableName: {
        validator: function (value, param) {
            var tableName = reportTable.name + "-" + reportTable.chineseName;
            if (value.toUpperCase() == tableName.toUpperCase()) {
                return false;
            }
            return true
        },
        message: '{1}'
    }
});


//搜索的方法
function doSearchTableInfo() {
    var queryParams = $("#dgTableInfo").datagrid("options").queryParams;
    queryParams["name"] = $("#tableName").val();
    queryParams["chineseName"] = $("#chineseName ").val();
    $("#dgTableInfo").datagrid("options").queryParams = queryParams;
    $("#dgTableInfo").datagrid("load");
}

/**
 * 查看表依赖表信息
 */

function getTableInfo() {
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    var id = arr[0].id;
    $('#dlgTableInfo').dialog({
        title: "查看对应表信息"
    }).dialog('open');
    $("#tabfrom1").form('clear');//添加之前清空表达信息
    $('#dgTableInfo').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: reportworld + '/tableTable/queryTableTable',
        singleSelect: false,//如果为true，则只允许选择一行。
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            id: id
        },
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '编号', hidden: true},
            {field: 'tabletableId', title: '关联关系编号', hidden: true},
            {field: 'name', title: '表名'},
            {field: 'chineseName', title: '中文名称'},
            {field: 'strLayered', title: '报表世界所在分层'},
            {field: 'version', title: '版本号'},
            {field: 'strFtype', title: '表类型'},
            {field: 'strFsource', title: '表来源'}
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        }, onClickCell: function (index, field, value) {
            $(this).datagrid('beginEdit', index);
            $(this).datagrid('getEditor', {index: index, field: field});
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            // viewTableInfo(rowData)
        }
    }).datagrid("columnMoving");
    ;
    $("#relyTableColumnTr").hide();
    $('#relyTableCloum').combobox({
        required: false
    });
    //重新赋值所有表信息
    $("#relyTables").combobox("loadData", reportTablesAdd);
    //字段维护隐藏
    $('#relyTables').combobox({
        onChange: function (n, o) {
            $('#relyTableCloum').combobox('clear');
            $("#relyTableColumnTr").hide();
            $('#relyTableCloum').combobox({
                required: false
            });
        }
    });
    $("#tableIdrely").val(id); //表的编码
    $("#ftyperely").val("1");
}

/**
 * 获取字段关联表 得字段
 * @param tableId 表编号
 */
function getTableInfoDetail() {
    var arr = $('#dgDetail').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    var id = arr[0].id;
    $('#dlgTableInfo').dialog({
        title: "查看对应表信息"
    }).dialog('open');
    $("#tabfrom1").form('clear');//添加之前清空表达信息
    $('#dgTableInfo').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: reportworld + '/tableTable/queryTableTableDetail',
        singleSelect: false,//如果为true，则只允许选择一行。
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            columnId: id
        },
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '表编号', hidden: true},
            {field: 'columnId', title: '字段编号', hidden: true},
            {field: 'tabletableId', title: '关联关系编号', hidden: true},
            {field: 'name', title: '表名'},
            {field: 'chineseName', title: '中文名称'},
            {field: 'strLayered', title: '报表世界所在分层'},
            {field: 'columnChineseName', title: '字段中文名'},
            {field: 'columnName', title: '字段名称'},
            {
                field: 'codeName', title: '字典编码',
                formatter: function (value, row, index) {
                    if (!isNull(row.codeName)) {
                        return "<a href='javascript:void(0)' onclick='datagridDataDic(&apos;" + row['codeName'] + "&apos;)'>" + row.codeName + "</a>";
                    }
                }
            },
            {field: 'version', title: '版本号'},
            {field: 'strFtype', title: '表类型'},
            {field: 'strFsource', title: '表来源'}
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        }, onClickCell: function (index, field, value) {
            $(this).datagrid('beginEdit', index);
            $(this).datagrid('getEditor', {index: index, field: field});
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            // viewTableInfo(rowData)
        }
    }).datagrid("columnMoving");
    ;

    $('#relyTables').combobox({
        onChange: function (n, o) {
            $('#relyTableCloum').combobox('clear');
            if (!isNull(n) && "0" != n) {
                var cloum = queryTableDetailListByTableId(n);
                $("#relyTableCloum").combobox("loadData", cloum);
                $("#relyTableColumnTr").show();
                $('#relyTableCloum').combobox({
                    required: true
                });
            } else {
                $("#relyTableColumnTr").hide();
                $('#relyTableCloum').combobox({
                    required: false
                });
            }
        }
    });
    $("#columnIdrely").val(id); //字段的编号
    $("#ftyperely").val("2");
    $("#tableIdrely").val(table_id); //字段的编号
    // 表下拉赋值位该表关联得表信息
    var reportTableTable = queryTableTable(table_id);
    $("#relyTables").combobox("loadData", reportTableTable);
}

/**
 * 字段关联的时候加载的表信息，为该表所关联的表
 * @param name
 */
function queryTableTable(tableId) {
    var reportTableTable = "";
    $.ajax({
            type: "post",
            url: reportworld + "/tableTable/queryTableTableByDetail",
            dataType: "json",
            async: false,
            data: {
                id: tableId
            },
            success: function (data) {
                $.messager.progress('close');
                if (successcode != data.code) {
                    return;
                }
                reportTableTable = data.data;
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
    return reportTableTable;
}

/**
 * 通过表id获取表字段信息
 * @param name
 */
function queryTableDetailListByTableId(id) {
    var column = "";
    $.ajax({
            type: "post",
            url: reportworld + "/table/queryTableDetailListByTableName",
            dataType: "json",
            async: false,
            data: {
                id: id
            },
            success: function (data) {
                $.messager.progress('close');
                if (successcode != data.code) {
                    return;
                }
                column = data.data;
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
    return column;
}

//添加表依赖
function addTableTableInfo() {
    $("#myformTableInfoView").form('clear');//添加之前清空表达信息
    $('#myformTableInfoView').form('enableValidation');//设置验证样式
    $('#dlgTableInfoView').dialog({
        title: "新增依赖表信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemTableTableInfo(1);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgTableInfoView').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#relyTableStatus').combobox('selectedIndex', 0); //选中第一个
    $('#tabletableVersion').combobox('selectedIndex', 0); //选中第一个
    $("#tableIdrely2").val($("#tableIdrely").val());
    $("#columnIdrely2").val($("#columnIdrely").val());
    $("#ftyperely2").val($("#ftyperely").val())
}

//修改表依赖
function editTableTableInfo() {
    $('#myformTableInfoView').form('enableValidation');//设置验证样式
    var arr = $('#dgTableInfo').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    $('#dlgTableInfoView').dialog({
        title: "编辑依赖表信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemTableTableInfo(2);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgTableInfoView').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myformTableInfoView').form('load', arr[0]);//页面赋值
    $('#relyTables').combobox("setValue", arr[0].id);
    $('#relyTableCloum').combobox("setValue", arr[0].columnId);
    $('#tabletalbeId').val(arr[0].tabletableId);
    $("#tableIdrely2").val($("#tableIdrely").val());
    $("#columnIdrely2").val($("#columnIdrely").val());
    $("#ftyperely2").val($("#ftyperely").val())
}

//保存表依赖信息
function saveItemTableTableInfo(ftype) {
    //验证表单信息
    if (!$("#myformTableInfoView").form('validate')) { //验证表单信息
        return;
    }
    var url = reportworld + "/tableTable/edit";
    if (1 == ftype) {
        url = reportworld + "/tableTable/add";
    }
    $.messager.confirm('系统提示', "确定保存依赖表信息吗？", function (parm) {
        if (!parm) {
            return;
        }
        $('#myformTableInfoView').form('submit', {
            url: url,
            onSubmit: function () {
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                try {
                    data = JSON.parse(data);
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    //关闭弹出窗口
                    $('#dlgTableInfoView').dialog('close');
                    $("#dgTableInfo").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                } catch (e) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        });
    });
}

// 删除表依赖信息
function delTableTableInfo() {
    var arr = $('#dgTableInfo').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要删除的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要删除【' + arr.length + '】条依赖表信息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].tabletableId);
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: reportworld + "/tableTable/del",
                dataType: "json",
                data: {
                    ids: JSON.stringify(ids)
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $("#dgTableInfo").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );

    });
}

/**
 * 表校验语句
 * @param id
 */
function getTableCheckInfo() {
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    var id = arr[0].id;
    $('#dlgCheckTableInfo').dialog({
        title: "查看表校验语句"
    }).dialog('open');
    $("#tabfrom3").form('clear');//添加之前清空表达信息
    $('#dgCheckTableInfo').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: reportworld + '/tableCheck/listInfo',
        singleSelect: false,//如果为true，则只允许选择一行。
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            tableId: id
        },
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '编号', hidden: true},
            {field: 'tableId', title: '表编号', hidden: true},
            {field: 'datasql', title: '校验SQL', width: 80},
            {
                field: 'errorType', title: '校验类型', width: 80, formatter: function (value, row, index) {
                    if (1 == value) {
                        return "警告";
                    } else {
                        return "错误";
                    }
                }
            },
            {field: 'errorMsg', title: '校验提示信息', width: 80},
            {field: 'sequence', title: '顺序'},
            {field: 'description', title: '校验说明', width: 80},
            {field: 'version', title: '版本号'},
            {field: 'addUser', title: '添加人'},
            {field: 'addTime', title: '添加时间'},
            {field: 'editUser', title: '修改人'},
            {field: 'editTime', title: '修改时间'}
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            $("#tableCheckId").val(id); //校验语句的是否表id
            return data.data;
        },
        //表格样式
        rowStyler: function (index, row) {
            return rowStyler(row.status);
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            viewTableCheckInfo(rowData)
        }
    }).datagrid("columnMoving");
    ;
}

//查看表校验语句信息
function viewTableCheckInfo(rowData) {
    $('#dlgCheckTableInfoView').dialog({
        title: "查看表校验语句信息",
        buttons: [{
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgCheckTableInfoView').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myformCheckTableInfo').form('load', rowData);//页面赋值
}

//搜索的方法
function doSearchTableCheckInfo() {
    var queryParams = $("#dgCheckTableInfo").datagrid("options").queryParams;
    queryParams["errorType"] = $('#selErrorType').combobox('getValue');
    queryParams["errorMsg"] = $("#selTableCheckErrorMsg").val();
    queryParams["version"] = $('#selTableCheckVersion').combobox('getValue');
    $("#dgCheckTableInfo").datagrid("options").queryParams = queryParams;
    $("#dgCheckTableInfo").datagrid("load");
}

//添加表校验语句
function addTableCheckInfo() {
    $("#myformCheckTableInfo").form('clear');//添加之前清空表达信息
    $('#myformCheckTableInfo').form('enableValidation');//设置验证样式
    $('#dlgCheckTableInfoView').dialog({
        title: "新增表校验语句信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemTableCheckInfo(1);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgCheckTableInfoView').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#tableCheckStatus').combobox('selectedIndex', 0); //选中第一个
    $('#tableCheckVersion').combobox('selectedIndex', 0); //选中第一个
    $('#errorType').combobox('selectedIndex', 0); //选中第一个
    $("#checkTableId").val($("#tableCheckId").val()); //校验语句的是否表id
}

//修改表校验语句
function editTableCheckInfo() {
    $('#myformCheckTableInfo').form('enableValidation');//设置验证样式
    var arr = $('#dgCheckTableInfo').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    $('#dlgCheckTableInfoView').dialog({
        title: "编辑表校验语句信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemTableCheckInfo(2);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgCheckTableInfoView').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myformCheckTableInfo').form('load', arr[0]);//页面赋值
}

//保存表校验语句信息
function saveItemTableCheckInfo(ftype) {
    //验证表单信息
    if (!$("#myformCheckTableInfo").form('validate')) { //验证表单信息
        return;
    }
    var url = reportworld + "/tableCheck/edit";
    if (1 == ftype) {
        url = reportworld + "/tableCheck/add";
    }
    $.messager.confirm('系统提示', "确定保存表校验语句信息吗？", function (parm) {
        if (!parm) {
            return;
        }
        $('#myformCheckTableInfo').form('submit', {
            url: url,
            onSubmit: function () {
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                try {
                    data = JSON.parse(data);
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    //关闭弹出窗口
                    $('#dlgCheckTableInfoView').dialog('close');
                    $("#dgCheckTableInfo").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                } catch (e) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        });
    });
}

// 删除表校验语句信息
function delTableCheckInfo() {
    var arr = $('#dgCheckTableInfo').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要删除的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要删除【' + arr.length + '】条表校验语句信息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: reportworld + "/tableCheck/del",
                dataType: "json",
                data: {
                    ids: JSON.stringify(ids)
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $("#dgCheckTableInfo").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );

    });
}

/**
 * 获取修改记录信息
 */
function getTableUpdateInfo(dg, code) {
    var arr = $('#' + dg).datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    var id = arr[0].id;
    queryDataUpdateInfo(id, code);
}

/*
表索引信息
 */
function getTableIndexed() {
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    var id = arr[0].id;
    $('#dlgIndexedTable').dialog({
        title: "查看索引信息"
    }).dialog('open');
    $('#dgIndexedTable').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: reportworld + '/tableIndexed/listInfo',
        singleSelect: false,//如果为true，则只允许选择一行。
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            tableId: id
        },
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '编号', hidden: true},
            {field: 'tableId', title: '表编号', hidden: true},
            {field: 'indexedName', title: '索引名称'},
            {field: 'strIndexedType', title: '索引类型'},
            {field: 'indexedColumnName', title: '字段名称'},
            {
                field: 'indexedAscDesc', title: '字段排序方式', formatter: function (value, row, index) {
                    if (isNull(value) || '0' == value) {
                        return "无";
                    } else {
                        return value;
                    }
                }
            },
            {field: 'indexedColumnSequence', title: '字段顺序'},
            {field: 'strStatus', title: '状态'}
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            $("#tableIndexedId").val(id); //表id
            return data.data;
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            viewTableIndexed(rowData)
        }, onLoadSuccess: function () {
            $(this).datagrid('enableDnd');
        }
    }).datagrid("columnMoving");
}

//查看表修改记录信息
function viewTableIndexed(rowData) {
    $('#dlgIndexedTableView').dialog({
        title: "查看表索引信息",
        buttons: [{
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgIndexedTableView').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myformIndexedTable').form('load', rowData);//页面赋值
    $('#myformIndexedTable').form('disableValidation');//清除验证样式
}


//添加表索引记录信息
function addTableIndexed() {
    var colum = queryTableDetailListByTableId($("#tableIndexedId").val());
    $("#indexedColumnName").combobox("loadData", colum);
    $("#myformIndexedTable").form('clear');//添加之前清空表达信息
    $('#myformIndexedTable').form('enableValidation');//设置验证样式
    $('#dlgIndexedTableView').dialog({
        title: "新增表索引信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemTableIndexed(1);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgIndexedTableView').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $("#indexedId").val($("#tableIndexedId").val());
    $('#indexedType').combobox('selectedIndex', 0); //选中第一个
    $('#indexedAscDesc').combobox('selectedIndex', 0); //选中第一个
    $('#indexedColumnName').combobox('selectedIndex', 0); //选中第一个
    $('#indexedStatus').combobox('selectedIndex', 0); //选中第一个
    $('#indexedColumnSequence').val(1); //默认给1
}

//修改表索引记录信息
function editTableIndexed() {
    var colum = queryTableDetailListByTableId($("#tableIndexedId").val());
    $("#indexedColumnName").combobox("loadData", colum);
    $('#myformIndexedTable').form('enableValidation');//设置验证样式
    var arr = $('#dgIndexedTable').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    $('#dlgIndexedTableView').dialog({
        title: "编辑表索引信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemTableIndexed(2);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgIndexedTableView').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $("#indexedNameFirst").val(arr[0].indexedName);
    $('#myformIndexedTable').form('load', arr[0]);//页面赋值
}

//保存表索引记录信息
function saveItemTableIndexed(ftype) {
    //验证表单信息
    if (!$("#myformIndexedTable").form('validate')) { //验证表单信息
        return;
    }
    var url = reportworld + "/tableIndexed/edit";
    if (1 == ftype) {
        url = reportworld + "/tableIndexed/add";
    }
    $.messager.confirm('系统提示', "确定保存表索引信息吗？", function (parm) {
        if (!parm) {
            return;
        }
        $('#myformIndexedTable').form('submit', {
            url: url,
            onSubmit: function () {
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                try {
                    data = JSON.parse(data);
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    //关闭弹出窗口
                    $('#dlgIndexedTableView').dialog('close');
                    $("#dgIndexedTable").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                } catch (e) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        });
    });
}

/**
 * 检查索引是否已经存在
 * @lsetlist name
 */
$.extend($.fn.validatebox.defaults.rules, {
    checkTableIndexed: {
        validator: function (value, param) {
            //修改页面，没有修改也提示存在的问题
            var indexedName = $("#" + param[0]).val();
            if (value.toUpperCase() == indexedName.toUpperCase()) {
                return true;
            }
            return checkTableIndexed(value)
        },
        message: '{1}'
    }
});

/**
 * 检查表名字段已经存在
 * @lsetlist name
 */
function checkTableIndexed(indexedName) {
    var falg = true;
    $.ajax({
        url: reportworld + "/tableIndexed/checkTableIndexed",
        method: 'post',
        async: false,
        data: {
            "indexedName": indexedName,
            "indexedColumnName": $('#indexedColumnName').combobox('getValue'),
            "tableId":
                $("#indexedId").val()
        },
        success: function (data) {
            if (successcode != data.code) {
                return errorHandle(data);
            }
            if (data.data == false) {
                falg = false;//标识已经存在
            }
        }
        ,
        error: function (data) {
            $.messager.progress('close');
            $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
        }
    })
    ;
    return falg;
}

// 删除表索引记录信息
function delTableIndexed() {
    var arr = $('#dgIndexedTable').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要删除的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要删除【' + arr.length + '】表修索引息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: reportworld + "/tableIndexed/del",
                dataType: "json",
                data: {
                    ids: JSON.stringify(ids)
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $("#dgIndexedTable").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );

    });
}


/**
 * 导出execl
 */
function tableExecl() {
    var arr = $('#dg').datagrid('getSelections');
    var ids = [];
    for (var i = 0; i < arr.length; i++) {
        var reportWorldTable = new Object();
        reportWorldTable.id = arr[i].id;
        ids.push(reportWorldTable);
    }
    $.messager.confirm('系统提示', '确定要导出表信息EXECL数据吗？', function (param) {
        if (!param) {
            return;
        } else {
            $.messager.show({title: '系统提示', msg: "正在导出数据中，请稍后！"});
            $('#tabfrom').form('submit', {
                url: reportworld + "/table/tableExecl",
                onSubmit: function (param) {
                    param.ids = JSON.stringify(ids);
                }, success: function (data) {
                }
            });
        }
    })
}

/**
 * 导出建表语句
 */
function tableCreate() {
    var arr = $('#dg').datagrid('getSelections');
    var ids = [];
    for (var i = 0; i < arr.length; i++) {
        var table = new Object();
        table.id = arr[i].id;
        ids.push(table);
    }
    $('#dataBaseType').combobox('selectedIndex', 0); //选中第一个
    $.messager.confirm('系统提示', '确定要导出建表语句吗？', function (param) {
        if (!param) {
            return;
        } else {
            $('#dlgExp').dialog({
                title: "导出建表语句",
                buttons: [{
                    text: '确定',
                    iconCls: 'icon-drink',
                    handler: function () {
                        $.messager.show({title: '系统提示', msg: "正在导出数据中，请稍后！"});
                        $('#tabfrom').form('submit', {
                            url: reportworld + "/table/tableCreate",
                            onSubmit: function (param) {
                                param.ids = JSON.stringify(ids);
                                param.ftype = $("#dataBaseType").combobox("getValue");
                            }, success: function (data) {
                            }
                        });
                        $('#dlgExp').dialog('close');
                    }
                }, {
                    text: '返回',
                    iconCls: 'icon-back',
                    handler: function () {
                        $('#dlgExp').dialog('close');
                    }
                }
                ]
            }).dialog('open');
        }
    })
}

/**
 * 查看表变更信息
 */
function viewUpgradeTableInfo() {
    var arr = $('#dg').datagrid('getSelections');
    var ids = [];
    if (isNull(arr) || arr.length == 0) {
        $.messager.alert('系统提示', "请选择要对比的表！", 'warning');
        return;
    }
    for (var i = 0; i < arr.length; i++) {
        if (isNull(arr[i].id)) {
            continue;
        }
        var table = new Object();
        table.id = arr[i].id;
        ids.push(table);
    }
    if (isNull(ids) || ids.length == 0) {
        $.messager.alert('系统提示', "请选择要对比的表！", 'warning');
        return;
    }
    $.messager.progress({text: '正在处理中...',});
    $.ajax({
            type: "post",
            url: reportworld + "/table/viewUpgradeTableInfo",
            dataType: "json",
            data: {
                ids: JSON.stringify(ids)
            },
            success: function (data) {
                $.messager.progress('close');
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                $('#viewUpgradeTableInfo').dialog({
                    title: "表对比信息",
                    buttons: [{
                        text: '返回',
                        iconCls: 'icon-back',
                        handler: function () {
                            $('#viewUpgradeTableInfo').dialog('close');
                        }
                    }
                    ]
                }).dialog('open');
                $("#msgInfo").textbox('setValue', data.data.msgInfo);
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}


/**
 * 读取文件
 * @param fileName
 */
function magerTableByFile(fileName) {
    $.messager.confirm('系统提示', "确定对比表信息吗？", function (parm) {
        if (!parm) {
            return;
        }
        //文件后缀格式
        if (!/\.(xlsx|XLSX)$/.test(fileName)) {
            $.messager.alert('系统提示', '错误的类型，请选择xlsx文件', 'error');
            return;
        }
        $('#subFile2').form('submit', {
            url: reportworld + "/table/magerTableByFile",
            onSubmit: function (param) {
                $.messager.progress({text: '正在处理中...'});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                $("#uploadFile2").val("");
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                $('#viewUpgradeTableInfo').dialog({
                    title: "文件对比详细信息",
                    buttons: [{
                        text: '返回',
                        iconCls: 'icon-back',
                        handler: function () {
                            $('#viewUpgradeTableInfo').dialog('close');
                        }
                    }
                    ]
                }).dialog('open');
                $("#msgInfo").textbox('setValue', data.data);
                $("#dg").datagrid("load");//刷新表格
            }, error: function (data) {
                $("#uploadFile2").val("");
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}

/**
 * 读取文件
 * @param fileName
 */
function readDemandDesign(fileName) {
    $.messager.confirm('系统提示', "确定导入设计文档吗？字段的字典值和业务主键信息将会被更新！", function (parm) {
        if (!parm) {
            return;
        }
        //文件后缀格式
        if (!/\.(xlsx|XLSX)$/.test(fileName)) {
            $.messager.alert('系统提示', '错误的类型，请选择xlsx文件', 'error');
            return;
        }
        $('#subFile3').form('submit', {
            url: reportworld + "/table/readDemandDesign",
            onSubmit: function (param) {
                $.messager.progress({text: '正在处理中...'});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                $("#uploadFile3").val("");
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                $('#viewUpgradeTableInfo').dialog({
                    title: "文件上传详细信息",
                    buttons: [{
                        text: '返回',
                        iconCls: 'icon-back',
                        handler: function () {
                            $('#viewUpgradeTableInfo').dialog('close');
                        }
                    }
                    ]
                }).dialog('open');
                $("#msgInfo").textbox('setValue', data.data);
                $("#dg").datagrid("load");//刷新表格
            }, error: function (data) {
                $("#uploadFile3").val("");
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}

/**
 * 保存顺序
 */
function updateTableDetailSequence() {
    var arr = $('#dgDetail').datagrid('getRows');
    var arrTableDetail = [];
    for (var i in arr) {
        var object = new Object();
        object.id = arr[i].id;
        object.sequence = i;
        arrTableDetail.push(object)
    }
    $.ajax({
            type: "post",
            url: reportworld + "/tableDetail/updateTableDetailSequence",
            dataType: "json",
            data: {
                tableDetail: JSON.stringify(arrTableDetail)
            },
            success: function (data) {
                $.messager.progress('close');
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                $("#dgDetail").datagrid("load");//刷新表格
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

/**
 * 保存索引顺序
 */
function updateTableIndexedSequence() {
    var arr = $('#dgIndexedTable').datagrid('getRows');
    var arrTableIndexed = [];
    var arrIndexedSequence = [];
    for (var i in arr) {
        var object = new Object();
        object.id = arr[i].id;
        object.indexedColumnSequence = i; //字段顺序
        if (arrIndexedSequence.includes(arr[i].indexedName)) {
            for (var k in arrIndexedSequence) {
                if (arr[i].indexedName == arrIndexedSequence[k]) {
                    object.indexedSequence = k;  //索引顺序
                    break;
                }
            }
        } else {
            object.indexedSequence = i;  //索引顺序
            arrIndexedSequence.push(arr[i].indexedName);
        }
        arrTableIndexed.push(object)
    }
    $.ajax({
            type: "post",
            url: reportworld + "/tableIndexed/updateTableIndexedSequence",
            dataType: "json",
            data: {
                tableIndexed: JSON.stringify(arrTableIndexed)
            },
            success: function (data) {
                $.messager.progress('close');
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                $("#dgIndexedTable").datagrid("load");//刷新表格
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}
